BIN=process
CC=gcc
                        # 可以使用shell指令给变量赋值
#SRC=$(shell ls *.c)    #将当前目录下所有以 .c 结尾的源文件的文件名列表赋值给变量 SRC。
SRC=$(wildcard *.c)     #功能同上
OBJ=$(SRC:.c=.o)
LFLAGS=-o
FLAGS=-c
RM=rm -f

$(BIN):$(OBJ)    # 将所有的.o文件链接成process
	$(CC) $(LFLAGS) $@ $^
%.o:%.c    #将所有的.c编译成对应的.o文件
	$(CC) $(FLAGS) $< -o $@
	
.PHONY:clean
clean:
	$(RM) $(OBJ) $(BIN)


# BIN=process
# CC=gcc
# SRC=myproc.c
# FLAGS=-o
# RM=rm -f
# 
# $(BIN):$(SRC)
# 	$(CC) $(FLAGS) $@ $^
# 
# .PHONY:
# clean:
# 	$(RM) $(BIN)


# process:myprog.o dep1.o dep2.o
# 	gcc -o process myprog.o dep1.o dep2.o
# 
# myprog.o:myprog.c
# 	gcc -c myprog.c
# 
# dep1.o:dep1.c
# 	gcc -c dep1.c
# 
# dep2.o:dep2.c
# 	gcc -c dep2.c
# 
# .PHONY:clean
# clean:
# 	rm -f *.o myprog
